CONTENTS

Overview

System Requirements

Control Panel

Attitude Controls

Attitude Joystick

Position Joystick

Position Displays

Freeze and Reset

Translation Mode

Fly Mode


OVERVIEW

The main ability of this program is to load and display a 3D World file. Currently the worlds are hand coded using a text editor but eventually I may turn this into a 3D Modeler that will allow you to build a world and then move through it. The world is made up of 4 sided polygons. Each polygon can have one or more of the following attributes:

Solid	The polygon will be painted as a solid color. Solid shapes paint much faster than textured ones.
NormalTxtr	The polygon will use an image (*.gif,*.pcx, etc.) for phototexture.
TranspTxtr	Same as NormalTxtr but any pixel that's color 0 will not be painted. This allows for a transparent shape.
PaintBck	This tells the program to paint the shape when viewed from behind.
BackTxtr	Paint back of shape with texture.
BackTransp	Paint back of shape solid using front texture for transparency.

Currently each polygon must have exactly 4 vertices. This makes the code simplier and faster and works well when using rectangular images for texture.

In addition to loading World files, it will load a single image and allow you to move it and rotate it to any viewing angle you wish. This in itself isn't very useful but it demonstrates what the graphics routines can do and if a save image option were added it might be useful to rotate an image and then import it into another program. When loading a single image the attributes TranspTxtr,PaintBck, and BackTxtr are set.

Currently there are a few minor bugs in the program itself such as the window sometimes not repainting correctly when brought to front after being behind other windows. I would appreciate it if you would notify me of any others you find. I think that I've fixed most of the bugs in the graphics library but one thing you'll notice when viewing a world is that it doesn't sort the polygons to see which is closer to the viewer. They are always painted in the order they are modeled in. This results in some strange views when you look at an object from behind. You see right through rear walls and other strange things. This is not really a bug and it only affects transparent shapes. It's just a feature that I have not yet  created.

WinView is currently only a demo. It was written merely to demonstrate the usefulness of new 3D graphics routines I've developed for windows. Unfortunately I'm not sure what to do now. Should I tidy up the routines and try to sell them, should I abandon it because it's not as unique as I like to think it is, or should I maybe continue on with this program and turn it into a full 3D Modeling package. I have a few ideas but I thought that it might be helpful to upload it to a couple of developer's forums on Compuserve and ask for advice, suggestions and/or criticism. Please try it out and tell me what you think. You may reach me, Keith Marshall/Progressive Logic by Compuserve Mail [73047,253] or with a message in the forum you downloaded it from.


SYSTEM REQUIREMENTS

This program requires at least a 386 processor because some of the code is written in 386 assembler to make it as fast as possible. The memory requirement depends on the size and number of images loaded. The Windows 3.1 minimum required memory should be fine for most simple worlds. A mouse is required. The last requirement is that you have 256 color video. In order to keep the code simple and quick, the program was written to handle 1 byte per color only, meaning that it must run on a 256 color system and that it will only load 256 color images in most cases. This may change in future versions.


CONTROL PANEL

    Click on the Control You Want Help On.


Attitude
ATTITUDE CONTROLS AND DISPLAYS

The Attitude Controls are the round dials at the top of the Control Panel.To change the attitude, you just click at the desired angle and the display will be translated to the new attitude. Also, you may hold the mouse button down and slowly rotate the control to the attitude you prefer.

The Attitude Displays show the current value or Roll, Pitch and Yaw rounded to the nearest degree. In a future upgrade they will be modified so that a value may be input by the user.


Joysticks
THE JOYSTICKS

There are two joystick type controls. To use either of them just click on them and hold the mouse button down. Then you can move the mouse to control the attitude or position.

The top joystick is used mostly for Fly mode. If the Z position or altitude is greater than seven feet, it controls roll and pitch. If the altitude is at seven feet it is considered to be on the ground and the attitude joystick will control yaw and pitch. Once the button is pressed the cursor may be moved anywhere on the screen as long as the button is held down. The amount of attitude change will be relative to the center of the joystick. Be careful. It doesn't take much.

The lower joystick is used to move the viewpoint position. With the left mouse button pressed it modifies the X (Left and Right) and Y (Forward and Reverse) position relative to the origin which is always X= 0, Y= 0, Z= 0. With the right mouse button pressed it modifies the Z (Up and Down) value. The basic amount of movement per frame varies from 0 at the center of the Joystick to +/- 15 at the edge. This value however is multiplied by the Scale value. Also, you may move the cursor anywhere on the screen to get even greater movement as long as you keep the mouse button down.


Speed/Scale Controls
SPEED AND SCALE CONTROLS

The Speed and Scale controls are just scroll bars. The range for the speed scroll bar is from 0 to 63 feet per second. Any value greater than 0 puts the program in fly mode. The range for the scale scroll bar is from 1 to 127. This value is used to scale the Position Joystick when moving the viewpoint.


FLY MODE

Fly mode is turned on whenever the speed is set to a value greater than 0. While in this mode the position is updated automatically each frame. It will be incremented at a rate based on the current speed setting and will be done so based on the current attitude. It basically acts like an airplane. While in this mode the update can be stopped either by setting the speed back to 0 or by pressing the Freeze button.


FREEZE AND RESET BUTTONS

The Freeze button freezes the position and attitude at their current position. The Reset button sets the position, attitude, speed and scale back to their initial values.


Position Displays
THE POSITION DISPLAYS

The position displays give a readout of the current X,Y, and Z values for the current viewer position. All three are displayed in feet and are relative to the origin position X = 0,Y = 0, and Z = 0.


TRANSLATION MODE

The program has two translation modes. In Viewer Mode, the viewer's position and attitude are modified by the controls. This is the default mode for viewing World Files.

In Object Mode, the Viewer's position is still controlled by the Position Joystick, but the attitude of the viewer remains stationary and the controls now modify the attitude of the World or Image. This is the default mode for viewing Image or Picture Files.